package com.cngphone.AnFetion.tools;

import java.lang.reflect.Field;

import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.os.Build;

/**
 * get System build information, useful for debug.
 *
 * @author bangbang.S
 */
public final class SystemInfo {
	@SuppressWarnings("unchecked")
	public static String toStr() {
		Class<Build> c;
		try{
			String ret = "";
			// nested class '$'
			c = (Class<Build>) Class.forName("android.os.Build$VERSION");
			Field[] fields = c.getFields();
			
			for (Field f : fields) {
				ret += "[" + f.getName() + ':' + f.get(c).toString() + ']';
			}
//			c = (Class<Build>) Class.forName("android.os.Build");
//			fields = c.getFields();
//			
//			for (Field f : fields) {
//				ret += "[" + f.getName() + ':' + f.get(c).toString() + ']';
//			}
			
			return ret;
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			e.printStackTrace();
		} finally {

		}
		

		return "";
	}
	public static String getVersion(Context con){
		String body = "";
       	PackageManager pm = con.getPackageManager();
    	PackageInfo info = null;
    	try {
			info = pm.getPackageInfo(con.getPackageName(), 0);
		} catch (NameNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			
			int code = info.versionCode;
			String name = info.versionName;
			
			body += "versionCode: " + code + "\n";
			body += "versionName: " + name;
		}
		
		return body;
	}
}
